#pragma once

struct Vertex
{
	FLOAT x,  y,  z;
	FLOAT tu, tv;
	//FLOAT nx, ny, nz;

	enum FVF
	{
		FVF_Flags = D3DFVF_XYZ | D3DFVF_TEX1 //| D3DFVF_NORMAL
	};
};

Interface IDrawable
{
public:
	virtual ~IDrawable(void) {}
	virtual void render();


	virtual void setPosition(const D3DXVECTOR3& position)
	{
		mPosition = position;
	}

	virtual D3DXVECTOR3 getPosition()
	{
		return mPosition;
	}

protected:
	IDrawable(D3DXVECTOR3 position, D3DXVECTOR3 size, LPDIRECT3DVERTEXBUFFER9 vertexBuffer, LPDIRECT3DTEXTURE9 texture) :
		mPosition(position), mSize(size), mVertexBuffer(vertexBuffer), mTexture(texture)
	{}
	D3DXVECTOR3 mPosition;
	D3DXVECTOR3 mSize;
	LPDIRECT3DVERTEXBUFFER9 mVertexBuffer;
	LPDIRECT3DTEXTURE9 mTexture;
};

